Micron Document
🎖️GitЯра🎖️

Commit 5572b29c0fee133a656da6162607b6c88bc30fce


Parents : d9b9ce6
Author : James Rich <2199651+jamesarich@users.noreply.github.com>
Signature : Signature validation error
Date : 2026-07-25T14:24:01-05:00
Committer : GitHub <noreply@github.com>
Date : 2026-07-25T19:24:01Z

fix(model): gate TAK module config on firmware 2.8.0 (#6435)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

Changes
Diff

diff --git a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/Capabilities.kt b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/Capabilities.kt
index ad0a60d3d1..bffa9051b9 100644
--- a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/Capabilities.kt
+++ b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/Capabilities.kt
@@ -52,8 +52,17 @@ data class Capabilities(val firmwareVersion: String?, internal val forceEnableAl
/** Support for Status Message module. Supported since firmware v2.8.0. */
val supportsStatusMessage = atLeast(V2_8_0)
- /** Support for TAK (ATAK) module configuration. Supported since firmware v2.7.19. */
- val supportsTakConfig = atLeast(V2_7_19)
+ /**
+ * Support for TAK (ATAK) module configuration. Gated to firmware v2.8.0.
+ *
+ * The v2.7.19 gate this replaces was set on protobuf availability rather than firmware support: v2.7.x
+ * `AdminModule::handleSetModuleConfig()` has no case for the `tak` submessage, so the node ACKs the write and
+ * reboots without storing anything, and `NodeDB::saveToDisk()` never sets `has_tak`. The editor therefore appeared
+ * to save and always read back as unspecified (Meshtastic-Android#6430).
+ *
+ * The firmware write, persist and remote-admin read paths land in meshtastic/firmware#11216, labelled for 2.8.
+ */
+ val supportsTakConfig = atLeast(V2_8_0)
/**
* Support for the v2 TAK port (ATAK_PLUGIN_V2 = 78) with TAKPacketV2 + zstd dictionary compression. Supported since
@@ -94,7 +103,6 @@ data class Capabilities(val firmwareVersion: String?, internal val forceEnableAl
private val V2_6_10 = DeviceVersion("2.6.10")
private val V2_7_12 = DeviceVersion("2.7.12")
private val V2_7_18 = DeviceVersion("2.7.18")
- private val V2_7_19 = DeviceVersion("2.7.19")
private val V2_8_0 = DeviceVersion("2.8.0")
private val UNRELEASED = DeviceVersion("9.9.9")
}

diff --git a/core/model/src/commonTest/kotlin/org/meshtastic/core/model/CapabilitiesTest.kt b/core/model/src/commonTest/kotlin/org/meshtastic/core/model/CapabilitiesTest.kt
index 6447c2a134..3afc591d11 100644
--- a/core/model/src/commonTest/kotlin/org/meshtastic/core/model/CapabilitiesTest.kt
+++ b/core/model/src/commonTest/kotlin/org/meshtastic/core/model/CapabilitiesTest.kt
@@ -80,9 +80,10 @@ class CapabilitiesTest {
}
@Test
- fun supportsTakConfig_requires_V2_7_19() {
- assertFalse(caps("2.7.18").supportsTakConfig)
- assertTrue(caps("2.7.19").supportsTakConfig)
+ fun supportsTakConfig_requires_V2_8_0() {
+ assertFalse(caps("2.7.19").supportsTakConfig)
+ assertFalse(caps("2.7.26").supportsTakConfig)
+ assertTrue(caps("2.8.0").supportsTakConfig)
}
@Test

Served by rngit 1.5.4 - Generated in 0.03s